package com.ruoyi.manage.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 学生申请对象 cr_application
 */
public class CrApplication extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 申请ID */
    private Long applicationId;

    /** 招聘ID */
    @Excel(name = "招聘ID")
    private Long recruitmentId;

    /** 学生用户ID */
    @Excel(name = "学生用户ID")
    private Long userId;

    /** 社团ID */
    @Excel(name = "社团ID")
    private Long clubId;

    /** 申请内容 */
    @Excel(name = "申请内容")
    private String applicationContent;

    /** 附件地址（JSON格式） */
    @Excel(name = "附件地址")
    private String attachmentUrls;

    /** 申请状态（0待审核 1面试中 2已通过 3已拒绝 4已取消） */
    @Excel(name = "申请状态", readConverterExp = "0=待审核,1=面试中,2=已通过,3=已拒绝,4=已取消")
    private String status;

    /** 审核结果 */
    @Excel(name = "审核结果")
    private String reviewResult;

    /** 审核人 */
    @Excel(name = "审核人")
    private String reviewBy;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

    /** 面试评分 */
    @Excel(name = "面试评分")
    private BigDecimal score;

    /** 反馈意见 */
    @Excel(name = "反馈意见")
    private String feedback;

    // 关联查询字段
    /** 招聘标题 */
    private String recruitmentTitle;

    /** 岗位名称 */
    private String positionName;

    /** 社团名称 */
    private String clubName;

    /** 学生姓名 */
    private String studentName;

    /** 学号 */
    private String studentNo;

    public void setApplicationId(Long applicationId)
    {
        this.applicationId = applicationId;
    }

    public Long getApplicationId()
    {
        return applicationId;
    }

    public void setRecruitmentId(Long recruitmentId)
    {
        this.recruitmentId = recruitmentId;
    }

    public Long getRecruitmentId()
    {
        return recruitmentId;
    }

    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }

    public void setClubId(Long clubId)
    {
        this.clubId = clubId;
    }

    public Long getClubId()
    {
        return clubId;
    }

    public void setApplicationContent(String applicationContent)
    {
        this.applicationContent = applicationContent;
    }

    public String getApplicationContent()
    {
        return applicationContent;
    }

    public void setAttachmentUrls(String attachmentUrls)
    {
        this.attachmentUrls = attachmentUrls;
    }

    public String getAttachmentUrls()
    {
        return attachmentUrls;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setReviewResult(String reviewResult)
    {
        this.reviewResult = reviewResult;
    }

    public String getReviewResult()
    {
        return reviewResult;
    }

    public void setReviewBy(String reviewBy)
    {
        this.reviewBy = reviewBy;
    }

    public String getReviewBy()
    {
        return reviewBy;
    }

    public void setReviewTime(Date reviewTime)
    {
        this.reviewTime = reviewTime;
    }

    public Date getReviewTime()
    {
        return reviewTime;
    }

    public void setScore(BigDecimal score)
    {
        this.score = score;
    }

    public BigDecimal getScore()
    {
        return score;
    }

    public void setFeedback(String feedback)
    {
        this.feedback = feedback;
    }

    public String getFeedback()
    {
        return feedback;
    }

    public String getRecruitmentTitle()
    {
        return recruitmentTitle;
    }

    public void setRecruitmentTitle(String recruitmentTitle)
    {
        this.recruitmentTitle = recruitmentTitle;
    }

    public String getPositionName()
    {
        return positionName;
    }

    public void setPositionName(String positionName)
    {
        this.positionName = positionName;
    }

    public String getClubName()
    {
        return clubName;
    }

    public void setClubName(String clubName)
    {
        this.clubName = clubName;
    }

    public String getStudentName()
    {
        return studentName;
    }

    public void setStudentName(String studentName)
    {
        this.studentName = studentName;
    }

    public String getStudentNo()
    {
        return studentNo;
    }

    public void setStudentNo(String studentNo)
    {
        this.studentNo = studentNo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("applicationId", getApplicationId())
            .append("recruitmentId", getRecruitmentId())
            .append("userId", getUserId())
            .append("clubId", getClubId())
            .append("applicationContent", getApplicationContent())
            .append("attachmentUrls", getAttachmentUrls())
            .append("status", getStatus())
            .append("reviewResult", getReviewResult())
            .append("reviewBy", getReviewBy())
            .append("reviewTime", getReviewTime())
            .append("score", getScore())
            .append("feedback", getFeedback())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}